/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Domain;

import Jama.Matrix;
import java.util.ArrayList;

/**
 *
 * @author Memet
 */
public class LamEigenschappen {

    ArrayList<Materiaal> materialen;
    Laminaat lam;
    Matrix a;
    Matrix b;
    Matrix d;
    double e1;
    double e2;
    double g12;
    double mu12;
    double mu21;
    double rho;
    double h;
    Data data;

    /**
     * Een verzameling resultaten over het berekende laminaat
     * @param data De databank waar de materialen zich in bevinden
     * @param lam Het laminaat
     * @param a de A-Matrix
     * @param b de B-Matrix
     * @param d de D-Matrix
     * @param e1 E1 [Pa]
     * @param e2 E2 [Pa]
     * @param g12 G12 [Pa]
     * @param mu12 Mu12
     * @param mu21 Mu21
     * @param rho Dichtheid [Kg/m3]
     * @param h Dikte van het laminaat [mm]
     */
    public LamEigenschappen(Data data, Laminaat lam, Matrix a, Matrix b, Matrix d, double e1, double e2, double g12, double mu12, double mu21, double rho, double h) {
        this.lam = lam;
        this.a = a;
        this.b = b;
        this.d = d;
        this.e1 = e1;
        this.e2 = e2;
        this.g12 = g12;
        this.mu12 = mu12;
        this.mu21 = mu21;
        this.rho = rho;
        this.h = h;
        this.data = data;

        this.materialen = new ArrayList<Materiaal>();
        ArrayList<Integer> gehad = new ArrayList<Integer>();
        Matrix laminaat = lam.getLam();
        Matrix m = laminaat.getMatrix(0, laminaat.getRowDimension() - 1, 1, 1);
        for(int i = 0; i < m.getRowDimension(); i++)
        {
            boolean door = true;
            for(Integer t : gehad)
            {
                if(t == (int) m.get(i,0))
                {
                    door = false;
                }
            }
            if(door)
            {
                materialen.add(data.getMateriaal((int) m.get(i,0)));
                gehad.add((int) m.get(i,0));
            }

        }
    }

    /**
     * De A-Matrix
     * @return de A-Matrix
     */
    public Matrix getA() {
        return a;
    }

    /**
     * De A-Matrix
     * @param a De A-Matrix
     */
    public void setA(Matrix a) {
        this.a = a;
    }

    /**
     * de B Matrix
     * @return de B matrix
     */
    public Matrix getB() {
        return b;
    }

    /**
     * de B Matrix
     * @param b de B matrix
     */
    public void setB(Matrix b) {
        this.b = b;
    }

    /**
     * de D matrix
     * @return de D Matrix
     */
    public Matrix getD() {
        return d;
    }

    /**
     * de D matrix
     * @param d de D matrix
     */
    public void setD(Matrix d) {
        this.d = d;
    }

    /**
     * de Databank
     * @return de databank
     */
    public Data getData() {
        return data;
    }

    /**
     * de databank
     * @param data de databank
     */
    public void setData(Data data) {
        this.data = data;
    }

    /**
     * de E1 [GPa]
     * @return de E1 [GPa]
     */
    public double getE1() {
        return e1;
    }

    /**
     * de E1 [GPa]
     * @param e1 de E1 [GPa]
     */
    public void setE1(double e1) {
        this.e1 = e1;
    }

    /**
     * de E2 [GPa]
     * @return de E2 [GPa]
     */
    public double getE2() {
        return e2;
    }

    /**
     * de E2 [GPa]
     * @param e2 de E2 [GPa]
     */
    public void setE2(double e2) {
        this.e2 = e2;
    }

    /**
     * de G12 [GPa]
     * @return de G12 [GPa]
     */
    public double getG12() {
        return g12;
    }

    /**
     * de G12 [GPa]
     * @param g2 de G12 [GPa]
     */
    public void setG12(double g2) {
        this.g12 = g2;
    }

    /**
     * de dikte
     * @return de dikte
     */
    public double getH() {
        return h;
    }

    /**
     * de dikte
     * @param h de dikte
     */
    public void setH(double h) {
        this.h = h;
    }

    /**
     * het laminaat
     * @return het laminaat
     */
    public Laminaat getLam() {
        return lam;
    }

    /**
     * het laminaat
     * @param lam het laminaat
     */
    public void setLam(Laminaat lam) {
        this.lam = lam;
    }

    /**
     * de aanwezige materialen
     * @return de aanwezige materialen
     */
    public ArrayList<Materiaal> getMaterialen() {
        return materialen;
    }

    /**
     * de aanwezige materialen
     * @param materialen de aanwezige materialen
     */
    public void setMaterialen(ArrayList<Materiaal> materialen) {
        this.materialen = materialen;
    }

    /**
     * de Mu12
     * @return de Mu12
     */
    public double getMu12() {
        return mu12;
    }

    /**
     * de Mu12
     * @param mu12 de Mu12
     */
    public void setMu12(double mu12) {
        this.mu12 = mu12;
    }

    /**
     * de Mu21
     * @return de Mu21
     */
    public double getMu21() {
        return mu21;
    }

    /**
     * de Mu21
     * @param mu21 de Mu21
     */
    public void setMu21(double mu21) {
        this.mu21 = mu21;
    }

    /**
     * de dichtheid
     * @return de dichtheid
     */
    public double getRho() {
        return rho;
    }

    /**
     * de dichtheid
     * @param rho de dichtheid
     */
    public void setRho(double rho) {
        this.rho = rho;
    }
}